package veterinaria.negocio;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Collection;

import veterinaria.dao.PacienteDAO;
import veterinaria.excepcion.DAOExcepcion;
import veterinaria.modelo.Paciente;

public class GestionAdministrarPaciente {
	public Collection<Paciente> buscarPorNombre(String nombre)
			throws DAOExcepcion {
		PacienteDAO dao = new PacienteDAO();
		return dao.buscarPorEspecie(nombre);
	}

	public Paciente insertar(int idPaciente, String cliente_idCliente, String dsEspecie, String dsRaza, String dsGenero, 
			String dsTipoSangre, Boolean flEsterilizado, String dsTamano, String dsActividad, Double nuPeso, String  feNacimiento)
	throws DAOExcepcion {
		PacienteDAO dao = new PacienteDAO();

		Paciente vo = new Paciente();
		vo.setIdPaciente(idPaciente);
		vo.setCliente_idCliente(cliente_idCliente);
		vo.setDsEspecie(dsEspecie);
		vo.setDsRaza(dsRaza);
		vo.setDsGenero(dsGenero);
		vo.setDsTipoSangre(dsTipoSangre);
		vo.setFlEsterilizado(flEsterilizado);
		vo.setDsTamano(dsTamano);
		vo.setDsActividad(dsActividad);
		vo.setNuPeso(nuPeso);
		vo.setFeNacimiento(this.ParseStringToDate(feNacimiento));
		
		return dao.insertar(vo);
	}

	public Paciente obtener(int idPaciente) throws DAOExcepcion {
		PacienteDAO dao = new PacienteDAO();
		return dao.obtener(idPaciente);
	}

	public void eliminar(int idPaciente) throws DAOExcepcion {
		PacienteDAO dao = new PacienteDAO();
		System.out.println("Dentro de doPost del servlet GestionAdministrarPaciente.eliminar");
		dao.eliminar(idPaciente);
	}

	public Paciente actualizar(int idPaciente, String cliente_idCliente, String dsEspecie, String dsRaza, String dsGenero, 
			String dsTipoSangre, Boolean flEsterilizado, String dsTamano, String dsActividad, Double nuPeso, String feNacimiento)
			throws DAOExcepcion {
		PacienteDAO dao = new PacienteDAO();

		Paciente vo = new Paciente();
		System.out.println("string date " + feNacimiento);			
		vo.setIdPaciente(idPaciente);
		vo.setCliente_idCliente(cliente_idCliente);
		vo.setDsEspecie(dsEspecie);
		vo.setDsRaza(dsRaza);
		vo.setDsGenero(dsGenero);
		vo.setDsTipoSangre(dsTipoSangre);
		vo.setFlEsterilizado(flEsterilizado);
		vo.setDsTamano(dsTamano);
		vo.setDsActividad(dsActividad);
		vo.setNuPeso(nuPeso);
		vo.setFeNacimiento(this.ParseStringToDate(feNacimiento));
		
		return dao.actualizar(vo);
	}

	public Collection<Paciente> listar() throws DAOExcepcion {
		PacienteDAO dao = new PacienteDAO();
		return dao.listar();
	}
	private Date ParseStringToDate(String str)
    {
		System.out.println("string date" + str );
        try {
            DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
            java.util.Date utilDate = df.parse(str);

            java.sql.Date dat =  new java.sql.Date( utilDate.getTime());
    		System.out.println("Date date" + dat );
            return dat;
            
        } catch (ParseException pe) {
            pe.printStackTrace();
        }
        
        return null;
    }
}
